Data compression systems encode a stream of digital data signals into compressed digital code signals and decode the compressed code signals back into the original data. Typically, a data compression system is used to encode data for its transmission to a remote location whereby the compression of the data reduces the amount of data transmitted.
Data compression algorithms may be divided into various categories, based on the techniques employed and the intended application of the algorithm. Some algorithms require that all of the input data (or a large block of data) be present for analysis prior to the compression taking place. Other algorithms can accept an input stream of uncompressed data and generate an output stream of compressed data without the need to buffer large quantities of data.
Accordingly, the latter type of compression algorithm is ideally suited to modems and other data communications applications which operate on a serial data stream.
A desirable feature of a data compression system is adaptability. A system's adaptability depends on its ability to efficiently compress input data that varies over a range of conditions. A second desirable feature is the storing of character strings. Character strings in the input data which match known character strings may be represented in the transmission of data by a single token rather than the entire string of characters.